
package com.insigma.business.qrcode.merchant.bff;

import com.alibaba.fastjson.JSONObject;
import com.insigma.business.qrcode.common.annotation.ApiServiceType;
import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.merchant.dto.request.*;
import com.insigma.business.qrcode.pay.dto.CareWelfareMerchantEvaluationCountDTO;
import com.insigma.business.qrcode.pay.dto.CareWelfareMerchantEvaluationDTO;
import com.insigma.business.qrcode.pay.dto.CareWelfareMerchantEvaluationSearchRequest;
import com.insigma.business.qrcode.soldier.dto.SimpleApiRequest;
import com.insigma.business.qrcode.welfare.dto.*;


import java.util.List;


public interface CareWelfareMerchantInfoBffProvider {

    
    @ApiServiceType(value = "all.ss.care.welfare.merchant.search", name = "查询数据列表", desc = "查询数据列表")
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> searchCareWelfareMerchantInfo(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);

    
    @ApiServiceType(value = "all.ss.care.welfare.merchant.user.search", name = "用户查询优惠", desc = "用户查询优惠")
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> searchMerchantInfoBySoldier(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);


    //展码优待
    @ApiServiceType(value = "all.ss.care.welfare.merchant.top", name = "用户查询优惠", desc = "用户查询优惠")
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> getCareWelfareMerchantHotList(final CareWelfareMerchantInfoSearchRequest request);

    
    @ApiServiceType(value = "all.ss.care.welfare.merchant.hot.click.search", name = "用户查询优惠", desc = "用户查询优惠")
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> getCareWelfareMerchantHotClickList(final CareWelfareMerchantInfoSearchRequest request);
    @ApiServiceType(value = "all.ss.care.welfare.merchant.recommand.search", name = "同类推荐", desc = "同类推荐")
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> getCareWelfareMerchantRecommendList(final CareWelfareMerchantInfoSearchRequest baseGetRequest);

    
    @ApiServiceType(value = "all.ss.care.welfare.merchant.view", name = "查询单个优惠", desc = "查询单个优惠")
    BaseResponse<CareWelfareMerchantInfoDTO> getCareWelfareMerchantInfo(final CareWelfareMerchantInfoSearchRequest baseGetRequest);

    
    @ApiServiceType(value = "all.ss.care.welfare.merchant.add", name = "新增商家优惠", desc = "新增商家优惠", opsLog = "老兵优惠")
    BaseResponse<String> insertCareWelfareMerchantInfo(final CareWelfareMerchantInfoInsertRequest careWelfareMerchantInfoInsertRequest);



    @ApiServiceType(value = "gov.ss.care.welfare.merchant.check", name = "审核商家", desc = "审核商家", opsLog = "老兵优惠")
    BaseResponse<Integer> checkMerchant(final CareWelfareMerchantInfoUpdateRequest request);



    @ApiServiceType(value = "gov.ss.care.welfare.merchant.delete", name = "新增商家优惠", desc = "新增商家优惠", opsLog = "老兵优惠")
    BaseResponse<Integer> deleteCareWelfareMerchantInfo(final BaseDeleteRequest deleteRequest);

    
    @ApiServiceType(value = "all.ss.care.welfare.merchant.publish", name = "发布商家信息", desc = "发布商家信息", opsLog = "老兵优惠")
    BaseResponse<Boolean> publishWelfareMerchantInfo(SimpleApiRequest request);

    @ApiServiceType(value = "gov.test.merchant.code.update", name = "刷新code", desc = "刷新code", opsLog = "老兵优惠")
    BaseResponse<Integer> updateAllCode(final CareWelfareMerchantInfoUpdateRequest careWelfareMerchantInfoUpdateRequest);

    
    List<JSONObject> queryTop20(String adminAreaCode);

    @ApiServiceType(value = "open.ss.soldier.merchant.search", name = "查询数据列表", desc = "查询数据列表")
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> sjglSearchCareWelfareMerchantInfo(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);

    
    @ApiServiceType(value = "open.ss.soldier.merchant.view", name = "查询单个优惠", desc = "查询单个优惠")
    BaseResponse<CareWelfareMerchantInfoDTO> sjglGetCareWelfareMerchantInfo(final CareWelfareMerchantInfoSearchRequest baseGetRequest);

    
    @ApiServiceType(value = "open.ss.soldier.merchant.add", name = "新增商家优惠", desc = "新增商家优惠", opsLog = "老兵优惠")
    BaseResponse<String> sjglInsertCareWelfareMerchantInfo(final CareWelfareMerchantInfoInsertRequest careWelfareMerchantInfoInsertRequest);


    
    @ApiServiceType(value = "open.ss.soldier.merchant.update", name = "更新商家优惠", desc = "更新商家优惠", opsLog = "老兵优惠")
    BaseResponse<Integer> sjglUpdateCareWelfareMerchantInfo(final CareWelfareMerchantInfoUpdateRequest careWelfareMerchantInfoUpdateRequest);

    @ApiServiceType(value = "all.ss.care.welfare.merchant.scan", name = "扫商家的码", desc = "扫商家的码")
    BaseResponse<CareScanMerchantInfoResult> scanMerchantQr(SimpleApiRequest request);


    @ApiServiceType(value = "all.ss.care.welfare.merchant.user.state", name = "查看商家 + 个人是否能够享用", desc = "查看商家 + 个人是否能够享用")
    BaseResponse<CareScanMerchantInfoResult> getMerchantUserMatchInfo(SimpleApiRequest request);

    @ApiServiceType(value = "all.ss.care.welfare.merchant.evaluation.add", name = "老兵插入评论", desc = "老兵插入评论", opsLog = "老兵优惠")
    BaseResponse<String> insertCareWelfareMerchantEvaluation(final CareWelfareMerchantEvaluationInsertRequest request);

    @ApiServiceType(value = "all.ss.care.welfare.merchant.evaluation.search", name = "查询评论列表", desc = "查询评论列表")
    BasePagingResponse<List<CareWelfareMerchantEvaluationDTO>> searchCareWelfareMerchantEvaluation(final CareWelfareMerchantEvaluationSearchRequest request);

    @ApiServiceType(value = "all.ss.care.welfare.merchant.evaluation.count", name = "查询评论汇总", desc = "查询评论列表")
    BaseResponse<CareWelfareMerchantEvaluationCountDTO> countCareWelfareMerchantEvaluation(final CareWelfareMerchantEvaluationSearchRequest request);


    @ApiServiceType(value = "gov.ss.care.welfare.merchant.stats", name = "查询商家统计信息", desc = "查询商家统计信息")
    BaseResponse<CareMerchantStats> getMerchantStats(SimpleApiRequest request);
}
